package dfbz.线程的操作;

public class demo03 {
    public static void main(String[] args) {
        //当用户线程(非守护线程)执行完毕时，守护线程也会停止执行但由于CPU运行速度太快，当用户线程执 行完毕时，将信息传递给守护线程，会有点时间差，而这些时间差会导致还会执行一点守护线程
        //不管开启多少个线程(用户线程),守护线程总是随着第一个用户线程的停止而停止
        //public final void setDaemon(boolean on) ：设置线程是否为守护线程
        //
        demo();
    }

    private static void demo() {
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 2000; i++) {
                    System.out.println("我是守护线程");
                }
            }
        });
        t1.setDaemon(true);//设置t1为守护线程
        Thread t2=new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("我不是守护线程2"+i);
                }
            }
        });
        Thread t3=new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("我不是守护线程3"+i);
                }
            }
        });
        t1.start();
        t2.start();
        t3.start();

    }
}
